﻿<%@ Page Language="C#" MasterPageFile="~/Medianamik/MasterPages/MedianamikModule.master" 
    AutoEventWireup="True" CodeBehind="Edit.aspx.cs" 
    Inherits="Medianamik.UI.Web.Shop.ShopEditAttribute" ValidateRequest="false" %>
    
<%@ Register src="~/medianamik/typemanagement/Controls/IconPicker.ascx" tagname="IconPicker" tagprefix="med" %>

<asp:Content ContentPlaceHolderID="HeaderContentHolder" runat="server">
    <style type="text/css">
        .EditionPage 
        {
            font-weight: bold;
        }
    </style>
</asp:Content>

<asp:Content ID="ContextMenuContent" ContentPlaceHolderID="ContextMenu" runat="server">
    <asp:LinkButton ID="SaveLinkButton" runat="server" CssClass="Action BtSauvegarder" OnClick="Save" 
        Text="<%$ Resources : Medianamik_Global, SaveButtonText %>" />
    <asp:HyperLink ID="CancelLink" runat="server" Text="<%$ Resources: Medianamik_Global, Cancel %>" CssClass="Action BtAnnuler unlock" />
</asp:Content>

<asp:Content ID="CenterContent" ContentPlaceHolderID="CenterContent" runat="server">
    <asp:UpdatePanel ID="uplValidation" runat="server" UpdateMode="Always">
	    <ContentTemplate>
            <asp:ValidationSummary ID="ValidationSummary" EnableClientScript="false" runat="server" CssClass="ValidationSummary" />
        </ContentTemplate>
    </asp:UpdatePanel>
    <p>Vous pouvez déterminer les différents attributs pouvant être associés au produit. Par exemple, pour un produit de type « Livre », les attributs suivants peuvent être créés : le nom de l'auteur (texte court), le nombre de pages (numérique) et le prix (décimal).</p>
    <div>
        <h2>Nom de l'attribut</h2>
        <p>Le nom permettera au gestionnaire de contenu d'identifier l'attribut dans l'interface de gestion de Medianamik.</p>
        <med:TranslatorBox runat="server" ID="TypeNameTranslations" Required="true" ErrorMessage='<%$ Resources: medianamik_typemanagement, TranslationRequired %>' />
    </div>
    <div>
        <h2><%=Resources("Medianamik_TypeManagement", "DataType") %></h2>
        <p>Chaque attribut doit contenir un type de donnée spécifique. Vous devez déterminer celui-ci. Choisissez « texte court » si le contenu doit être billingue.</p>
        <div><label class="EditionPage" for="<%= ddlDataTypes.ClientID %>">Type :</label>
        <asp:DropDownList ID="ddlDataTypes" runat="server" CssClass="SelectList" onchange="dateTypeChanged(this);" />&nbsp;<span class="ChampObligatoire">*</span>&nbsp;<br /></div>
        <div id="localization"><br /><p><asp:CheckBox ID="cbValuesAreLocalized" runat="server" />&nbsp;<asp:Label CssClass="EditionPage" AssociatedControlID="cbValuesAreLocalized" runat="server" Text='<%$ Resources: medianamik_typemanagement, ValuesAreLocalized %>' /></p></div>
    </div>
    <div id="options">
        <h2>Options disponibles</h2>
        <p>Choississez un groupe d'options existant ou créer un nouveau groupe d'options.</p>
        <div><label class="EditionPage" for="<%= ddlOptionGroups.ClientID %>">Groupe d'options :</label>
        <asp:DropDownList ID="ddlOptionGroups" runat="server" CssClass="SelectList" AutoPostBack="true" />&nbsp;<span class="ChampObligatoire">*</span>&nbsp;<br /></div>
    </div>
    <div id="validation">
        <h2><%= Resources("medianamik_typemanagement", "InputValidation") %></h2>
        <p>Vous pouvez spécifier une validation à effectuer sur ce type de données. Medianamik s'assurera que le contenu entrée pour cet attribut soit valide. Vous pouvez également entrer une longueur minimale et maximale de caractères.</p>
        <div id="requiredValidation"><p><asp:CheckBox ID="cbIsRequired" runat="server" />&nbsp;<asp:Label CssClass="EditionPage" AssociatedControlID="cbIsRequired" runat="server" Text='La valeur de cet attribut est obligatoire' /></p></div>
        <div id="textValidation">
            <label class="EditionPage" for="<%= ddlValidation.ClientID %>">Valider en tant que :</label>&nbsp;
            <asp:DropDownList ID="ddlValidation" runat="server" CssClass="SelectList" /><br /><br />
        </div>
        <div id="minMaxValidation">
            <table>
                <tr>
                    <td><asp:Label CssClass="EditionPage" AssociatedControlID="txtMinLength" runat="server" Text='<%$ Resources: medianamik_typemanagement, TextMinLength %>' /> :&nbsp;</td>
                    <td><asp:TextBox ID="txtMinLength" runat="server" />
                        <asp:CustomValidator ID="validatorMinLength" runat="server" ValidateEmptyText="true" ControlToValidate="txtMinLength" OnServerValidate="ValidateMinLength" Display="Dynamic" ErrorMessage="La longueur minimale est invalide" Text="&nbsp;*&nbsp;"></asp:CustomValidator></td>
                </tr>
                <tr>
                    <td><asp:Label CssClass="EditionPage" AssociatedControlID="txtMaxLength" runat="server" Text='<%$ Resources: medianamik_typemanagement, TextMaxLength %>' /> :&nbsp;</td>
                    <td><asp:TextBox ID="txtMaxLength" runat="server" />
                        <asp:CustomValidator ID="validatorMaxLength" runat="server" ValidateEmptyText="true" ControlToValidate="txtMaxLength" OnServerValidate="ValidateMaxLength" Display="Dynamic" ErrorMessage="La longueur maximale est invalide"  Text="&nbsp;*&nbsp;"></asp:CustomValidator></td>
                </tr>
            </table>
        </div>
    </div>
    
    <asp:RequiredFieldValidator EnableClientScript="false" ID="reqDataType" runat="server" ControlToValidate="ddlDataTypes" ErrorMessage="<%$ Resources : Medianamik_TypeManagement, DataTypeRequired %>" Display="None" />
    <asp:CustomValidator ID="validatorMinAndMaxLength" runat="server" OnServerValidate="ValidateMinAndMaxLength" ErrorMessage="La longueur minimale doit être plus petite que la longueur maximale" ></asp:CustomValidator>
    <asp:CustomValidator ID="LookupValidator" runat="server" ValidateEmptyText="true" OnServerValidate="ValidateLookup" ErrorMessage="Groupe d'options obligatoire" Display="None"></asp:CustomValidator>
    
    <script type="text/javascript">
        function documentReady(sender, args) {
            var dataTypeList = document.getElementById('<%= ddlDataTypes.ClientID %>');
            dateTypeChanged(dataTypeList);
        }
    
        function dateTypeChanged(sender) {
            var selected = sender.selectedIndex > 0;
            
            var localization = document.getElementById('localization');
            var options = document.getElementById('options');
            var validation = document.getElementById('validation');
            var requiredValidation = document.getElementById('requiredValidation');
            var textValidation = document.getElementById('textValidation');
            var minMaxValidation = document.getElementById('minMaxValidation');
            
            if (selected) {
                if (sender.value == '<%= Medianamik.Core.PropertyDefinitions.ShortTextPropertyId %>'
                        || sender.value == '<%= Medianamik.Core.PropertyDefinitions.MediumTextPropertyId %>'
                        || sender.value == '<%= Medianamik.Core.PropertyDefinitions.LongTextPropertyId %>') {
                    localization.style.display = 'block';
                    validation.style.display = 'block';
                    options.style.display = 'none';
                    if (sender.value == '<%= Medianamik.Core.PropertyDefinitions.ShortTextPropertyId %>') {
                        textValidation.style.display = 'block';
                        minMaxValidation.style.display = 'block';
                    } else {
                        textValidation.style.display = 'none';
                        minMaxValidation.style.display = 'none';
                        document.getElementById('<%= txtMinLength.ClientID %>').value = '';
                        document.getElementById('<%= txtMaxLength.ClientID %>').value = '';
                    }
                } else if (sender.value == '<%= Medianamik.Core.PropertyDefinitions.OneToManyPropertyId %>'
                               || sender.value == '<%= Medianamik.Core.PropertyDefinitions.ManyToOnePropertyId %>') {
                    localization.style.display = 'none';
                    validation.style.display = 'none';
                    options.style.display = 'block';
                    
                } else {
                    localization.style.display = 'none';
                    validation.style.display = 'block';
                    textValidation.style.display = 'none';
                    document.getElementById('<%= cbValuesAreLocalized.ClientID %>').checked = false;
                    minMaxValidation.style.display = 'none';
                    document.getElementById('<%= txtMinLength.ClientID %>').value = '';
                    document.getElementById('<%= txtMaxLength.ClientID %>').value = '';
                    
                    if (sender.value == '<%= Medianamik.Core.PropertyDefinitions.BitPropertyId %>') {
                        validation.style.display = 'none';
                        document.getElementById('<%= cbIsRequired.ClientID %>').checked = false;
                    }
                }
            } else {
                localization.style.display = 'none';
                options.style.display = 'none';
                validation.style.display = 'none';
                textValidation.style.display = 'none';
                document.getElementById('<%= txtMinLength.ClientID %>').value = '';
                document.getElementById('<%= txtMaxLength.ClientID %>').value = '';
                document.getElementById('<%= cbValuesAreLocalized.ClientID %>').checked = false;
            }
        }
    </script>

</asp:Content>